In [1]:
import blosc2
import pandas as pd

import plotly.express as px
In [2]:
lib_names = ['Blosc2 (NDArray)', 'Zarr (Blosc1)', 'h5py (HDF5 - Blosc2)']
creation_time_min = [56.15, 60, 35.09]
In [3]:
fig = px.bar(y=creation_time_min, x=lib_names, color=lib_names, 
             title="Creation Time (Minutes)", labels = {'x': '', 'y': '', 'color': ''})
fig.show()
In [4]:
sizesGB = [12.67, 32.15, 12.3]
fig = px.bar(y=sizesGB, x=lib_names, color=lib_names, 
              title="Size (GB)", labels = {'x': '', 'y': '', 'color': ''})
fig.show()
In [5]:
axis = [0, 1, 2] * 3
libraries = [lib_names[0]] * 3 + [lib_names[1]] * 3 + [lib_names[2]] * 3
In [6]:
speed1 = [3.63, 3.98, 3.87,  
         1.70, 1.75, 1.72,
         1.77, 1.82, 1.81]

# nthreads = 1
df1 = pd.DataFrame()
df1.insert(0, 'Speed (GB/s)', speed1)
df1.insert(1, 'Axis', axis)
df1.insert(2, 'Library', libraries)
df1.insert(3, 'nthreads', [1] * len(speed1))

# nthreads = 16
speed16 = [3.58, 4.34, 4.26,
          3.32, 3.5, 3.36,
          1.14, 1.15, 1.14]
df16 = pd.DataFrame()
df16.insert(0, 'Speed (GB/s)', speed16)
df16.insert(1, 'Axis', axis)
df16.insert(2, 'Library', libraries)
df16.insert(3, 'nthreads', [16] * len(speed1))
In [7]:
df = pd.concat([df1, df16], axis=0)
df.reset_index(drop=True)

fig = px.bar(df, x='Axis', y='Speed (GB/s)', color='Library', barmode = 'group', facet_col="nthreads",
            labels = {'Speed (GB/s)': '', 'Library': ''},
            title='Speed (GB/s)')
fig.show()
In [8]:
# Without specifying nthreads
speed = [3.63, 4.49, 4.32,
        4.08, 4.28, 4.04,
        1.77, 1.79, 1.81]
df_def = pd.DataFrame()
df_def.insert(0, 'Speed (GB/s)', speed)
df_def.insert(1, 'Axis', axis)
df_def.insert(2, 'Library', libraries)
df_def.insert(3, 'nthreads', ['Default'] * len(libraries))


df = pd.concat([df, df_def], axis=0)
df.reset_index(drop=True)

fig = px.bar(df, x='Axis', y='Speed (GB/s)', color='Library', barmode = 'group', facet_col="nthreads",
            labels = {'Speed (GB/s)': '', 'Library': ''},
            title='Speed (GB/s)')
fig.show()